package com.wondream.myframework.app.common.excel.function;

import org.joda.time.DateTime;
import org.springframework.expression.spel.standard.SpelExpressionParser;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Date;

/**
 * 内部函数库，使用EL表达式在excel模板中调用
 * @cfssAmt(${attr}, '###,###,###.##')
 * @cfssDate(${data2.attr2}, 'yyyy-MM-dd')
 */
public class CfssExcelFunction {

    /**
     * 日期格式化
     */
    @CfssExcelFuncAnno("cfssDate")
    public static String cfssDate(Date date, String pattern){
        DateTime dateTime = new DateTime(date.getTime());
        return dateTime.toString(pattern);
    }

    /**
     * 金额千分位
     */
    @CfssExcelFuncAnno("cfssAmt")
    public static String cfssAmt(BigDecimal amount, String pattern){
        DecimalFormat decimalFormat = new DecimalFormat(pattern);
        return decimalFormat.format(amount);
    }

    /**
     * 数学函数
     */
    @CfssExcelFuncAnno("cfssMath")
    public static String cfssMath(String exp){
        return new SpelExpressionParser().parseExpression(exp).getValue(String.class);
    }
}
